import java.util.*;

public class 优先队列 {
	public static void main(String[] args) {
		var sc = new Scanner(System.in);
		int n = sc.nextInt();
//--------------------s优先队列----------------------
//		var q = new PriorityQueue<Integer>();
//		for(int i = 1; i <= n; i ++ ) {
//			q.add(sc.nextInt());
//		}
//		while(q.size() != 0) {
//			System.out.print(q.poll() + " ");
//		}
		
// -----------------能不能自己去写一个队列-----------------
//		int[] q = new int [n + 10];
//		int tt = -1; // 注意这个是要从-1开始的
//		int hh = 0;
//		for(int i = 1; i <= n; i ++ ) {
//			int x = sc.nextInt();
//			String s = sc.next();
//			if(s.equals("add")) { // 增加
//				q[++ tt ] = x;
//			} else { // 删除
//				if(hh == tt + 1) {
//					System.out.print("里面已经没有元素了\n");
//				} else {
//					System.out.print(q[hh ++ ] + "\n");
//				}
//			}
//		}
		
// -------------------------自带的stl单调队列------------------------
//		var q = new LinkedList<Integer>();
//		for(int i = 1; i <= n; i ++ ) {
//			int x = sc.nextInt();
//			q.add(x);
//		}
//		//遍历
//		while(!q.isEmpty()) {
//			System.out.print(q.poll() + "\n");
//		}
// ----------------------自带的双端队列-------------------------
		var q = new ArrayDeque<Integer>();
		for(int i = 1; i <= n; i ++ ) {
			int x = sc.nextInt();
			q.addLast(x);
		}
		// 有点类似与栈的模式了
		while(!q.isEmpty()) {
			int x = q.pollLast(); // 获取的是最后一个元素
			
			System.out.print(x + "\n");
		}
	}
}
